package com.xindacloud.sms.adapter.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;

@Data
@TableName
public class SmsMessageDetailed implements Serializable {

    private static final long serialVersionUID = 1571296453868L;


    /**
     * 主键
     * messageID
     * isNullAble:0
     */
    @TableId(type = IdType.INPUT)
    private String messageId;

    /**
     * 消息类型。MT（移动设备终止或出站）或MO（移动设备原始或入站）
     * isNullAble:1,defaultVal:MT
     */
    private String type;

    /**
     * 使用平台中的哪个账户发送的
     * isNullAble:1
     */
    private String accountId;

    /**
     * 网络编码46000
     * isNullAble:1
     */
    private String network;

    /**
     * 发送者
     * isNullAble:1
     */
    private String sendFrom;

    /**
     * 接受者
     * isNullAble:1
     */
    private String sendTo;

    /**
     * 消息内容
     * isNullAble:1
     */
    private String messageBody;

    /**
     * 平台以以下格式接收您的请求时的UTC + 0的日期和时间：YYYY-MM-DD HH:MM:SS。
     * isNullAble:1
     */
    private java.time.LocalDateTime dateReceived;

    /**
     * 价格
     * isNullAble:1
     */
    private java.math.BigDecimal price;

    /**
     * 平台从发送MT消息的运营商处收到交付收据时的UTC + 0的日期和时间。此参数的格式如下YYYY-MM-DD HH:MM:SS。
     * isNullAble:1
     */
    private java.time.LocalDateTime dateClosed;

    /**
     * date-received之间date-closed的总延迟（以毫秒为单位）
     * isNullAble:1
     */
    private Integer latency;

    /**
     * 您在请求中设置的内部参考
     * isNullAble:1
     */
    private String clientRef;

    /**
     * 解释消息在传递过程中的位置的代码。如果状态不是，delivered请检查error-code更多信息。如果status为，则accepted忽略的值error-code。
     * delivered，expired，failed，rejected，accepted，buffered或者unknown
     * isNullAble:1
     */
    private String status;

    /**
     * 状态message-id的date-closed。
     * DELIVRD，EXPIRED，UNDELIV，REJECTD或者UNKNOWN
     * isNullAble:1
     */
    private String finalStatus;

    /**
     * 0，1，2，3，4，5，6，7，8，9，10，11，12，13，14，15，99，400或者401
     * isNullAble:1
     */
    private Integer errorCode;

    /**
     * isNullAble:1
     */
    private String errorCodeLabel;

    /**
     * isNullAble:1,defaultVal:CURRENT_TIMESTAMP
     */
    private java.time.LocalDateTime createTime;

    /**
     * isNullAble:1,defaultVal:CURRENT_TIMESTAMP
     */
    private java.time.LocalDateTime lastUpdate;


    @Override
    public String toString() {
        return "SmsMessageDetailed{" +
                "messageId='" + messageId + '\'' +
                "type='" + type + '\'' +
                "accountId='" + accountId + '\'' +
                "network='" + network + '\'' +
                "sendFrom='" + sendFrom + '\'' +
                "sendTo='" + sendTo + '\'' +
                "messageBody='" + messageBody + '\'' +
                "dateReceived='" + dateReceived + '\'' +
                "price='" + price + '\'' +
                "dateClosed='" + dateClosed + '\'' +
                "latency='" + latency + '\'' +
                "clientRef='" + clientRef + '\'' +
                "status='" + status + '\'' +
                "finalStatus='" + finalStatus + '\'' +
                "errorCode='" + errorCode + '\'' +
                "errorCodeLabel='" + errorCodeLabel + '\'' +
                "createTime='" + createTime + '\'' +
                "lastUpdate='" + lastUpdate + '\'' +
                '}';
    }
}
